package psd.model.Prolog;

import java.util.Hashtable;
import java.util.Map;

import org.eclipse.jdt.core.ICompilationUnit;

import psd.core.CompilationUnitManager;


public abstract class FactGenerationToolbox
{

    protected IFQNTranslator fqntrans;
    protected IIDGenerator provider;
    protected IIDResolver idresolver;
    protected ITypeResolver tresolver;
    protected IDManagerIType manager;
    protected IFactWriter prologWriter;
    protected Map relinkedParents;
    protected Map syntheticConstructorIds;
    protected Hashtable packages;
    protected int anonClassNumber;
	protected Hashtable labels;
	protected ICompilationUnit icompilationUnit;	

	public FactGenerationToolbox()
    {
    }
    
    public Map getRelinkedParents()
    {
    	return relinkedParents;
    }
    
    public Hashtable getPackages()
    {
    	return packages;
    }
    
    public Map getSyntheticConstructorIds()
    {
    	return syntheticConstructorIds;
    }

    public IFQNTranslator getFQNTranslator()
    {
        return fqntrans;
    }

    public IIDGenerator getIDGenerator()
    {
        return provider;
    }

    public IIDResolver getIDResolver()
    {
        return idresolver;
    }

    public ITypeResolver getTypeResolver()
    {
        return tresolver;
    }

    public IDManagerIType getIDManager()
    {
        return manager;
    }
    
    public IFactWriter getFactWriter()
    {
        return prologWriter;
    }
    
    public int getAnonClassNumber() {
		return anonClassNumber;
	}
    
    public void setAnonClassNumber(int anonClassNumber) {
		this.anonClassNumber = anonClassNumber;
	}
    
    public Hashtable getLabels() {
		return labels;
	}
    
    public ICompilationUnit getIcompilationUnit() {
		return CompilationUnitManager.Instance().get_currentCompilationUnit();
	}
}
